/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.cip.esymons.tesoreria.beans;

import java.util.Date;
import java.util.List;
import javax.faces.model.SelectItem;
import org.cip.esymons.general.util.Utiles;
import org.cip.esymons.tesoreria.bc.ComprobanteEgresoDelegate;
import org.cip.esymons.tesoreria.be.ComprobanteEgreso;
import org.cip.esymons.tesoreria.be.EnumEstadoComprobanteEgreso;

/**
 *
 * @author Ingrid Capuñay
 */
public class ComprobanteEgresoController {

    private ComprobanteEgresoDelegate delegadoComprobanteEgreso;
    private List<ComprobanteEgreso> listaComprobanteEgreso;
    private String apePat, apeMat, nom, dni, cip, raz, ruc;
    private EnumEstadoComprobanteEgreso estadoComprobanteEgreso;
    private String nroCheque, nroVoucher, nroDocEx, cuentaEgreso;
    private Date fecIniG, fecFinG, fecIniR, fecFinR;
    private int tipoPersona = 0;
    private String razBanco, rucBanco, cuentaBanco;

    public ComprobanteEgresoController() {
        delegadoComprobanteEgreso = new ComprobanteEgresoDelegate();
        estadoComprobanteEgreso=EnumEstadoComprobanteEgreso.GENERADO;
    }

    public String buscarVouchers() {
        String persona = null;
        if (tipoPersona == 0) {
            String cipRealV=Utiles.devuelveCipCompleto(cip);
            persona = "-" + apePat + ";" + "-" + apeMat + ";" + "-" + nom + ";" + "-" + dni + ";" + "-" + cipRealV;
        } else {
            persona = "-" + (raz == null ? "" : raz) + ";" + "-" + (ruc == null ? "" : ruc);
        }
        String banco = null;
        banco = "-" + cuentaBanco + ";" + "-" + razBanco + ";" + "-" + rucBanco;
        listaComprobanteEgreso = delegadoComprobanteEgreso.buscarComprobantesEgreso(tipoPersona, persona, nroVoucher, nroDocEx, cuentaEgreso, banco, fecIniG, fecFinG, fecIniR, fecFinR, nroCheque, estadoComprobanteEgreso);
        return null;
    }

    public SelectItem[] getEstadosVoucherItems() {
        try {
            SelectItem[] select = new SelectItem[EnumEstadoComprobanteEgreso.values().length];
            int i = 0;
            for (EnumEstadoComprobanteEgreso ba : EnumEstadoComprobanteEgreso.values()) {
                SelectItem item = new SelectItem(ba, ba.name());
                select[i++] = item;
            }
            return select;
        } catch (Exception ex) {
            SelectItem[] select = new SelectItem[1];
            SelectItem item = new SelectItem(null, "No existen Estados");
            select[0] = item;
            return select;
        }
    }

    public SelectItem[] getEstadosVoucherNuevoItems() {
        try {
            SelectItem[] select = new SelectItem[EnumEstadoComprobanteEgreso.values().length-2];
            int i = 0;
            for (EnumEstadoComprobanteEgreso ba : EnumEstadoComprobanteEgreso.values()) {
                if(!ba.equals(EnumEstadoComprobanteEgreso.ANULADO) && !ba.equals(EnumEstadoComprobanteEgreso.ENTREGADO)){
                    SelectItem item = new SelectItem(ba, ba.name());
                    select[i++] = item;
                }
            }
            return select;
        } catch (Exception ex) {
            SelectItem[] select = new SelectItem[1];
            SelectItem item = new SelectItem(null, "No existen Estados");
            select[0] = item;
            return select;
        }
    }

    /**
     * @return the listaComprobanteEgreso
     */
    public List<ComprobanteEgreso> getListaComprobanteEgreso() {
        return listaComprobanteEgreso;
    }

    /**
     * @param listaComprobanteEgreso the listaComprobanteEgreso to set
     */
    public void setListaComprobanteEgreso(List<ComprobanteEgreso> listaComprobanteEgreso) {
        this.listaComprobanteEgreso = listaComprobanteEgreso;
    }

    /**
     * @return the apePat
     */
    public String getApePat() {
        return apePat;
    }

    /**
     * @param apePat the apePat to set
     */
    public void setApePat(String apePat) {
        this.apePat = apePat;
    }

    /**
     * @return the apeMat
     */
    public String getApeMat() {
        return apeMat;
    }

    /**
     * @param apeMat the apeMat to set
     */
    public void setApeMat(String apeMat) {
        this.apeMat = apeMat;
    }

    /**
     * @return the nom
     */
    public String getNom() {
        return nom;
    }

    /**
     * @param nom the nom to set
     */
    public void setNom(String nom) {
        this.nom = nom;
    }

    /**
     * @return the dni
     */
    public String getDni() {
        return dni;
    }

    /**
     * @param dni the dni to set
     */
    public void setDni(String dni) {
        this.dni = dni;
    }

    /**
     * @return the cip
     */
    public String getCip() {
        return cip;
    }

    /**
     * @param cip the cip to set
     */
    public void setCip(String cip) {
        this.cip = cip;
    }

    /**
     * @return the raz
     */
    public String getRaz() {
        return raz;
    }

    /**
     * @param raz the raz to set
     */
    public void setRaz(String raz) {
        this.raz = raz;
    }

    /**
     * @return the ruc
     */
    public String getRuc() {
        return ruc;
    }

    /**
     * @param ruc the ruc to set
     */
    public void setRuc(String ruc) {
        this.ruc = ruc;
    }

    /**
     * @return the estadoComprobanteEgreso
     */
    public EnumEstadoComprobanteEgreso getEstadoComprobanteEgreso() {
        return estadoComprobanteEgreso;
    }

    /**
     * @param estadoComprobanteEgreso the estadoComprobanteEgreso to set
     */
    public void setEstadoComprobanteEgreso(EnumEstadoComprobanteEgreso estadoComprobanteEgreso) {
        this.estadoComprobanteEgreso = estadoComprobanteEgreso;
    }

    /**
     * @return the nroCheque
     */
    public String getNroCheque() {
        return nroCheque;
    }

    /**
     * @param nroCheque the nroCheque to set
     */
    public void setNroCheque(String nroCheque) {
        this.nroCheque = nroCheque;
    }

    /**
     * @return the nroVoucher
     */
    public String getNroVoucher() {
        return nroVoucher;
    }

    /**
     * @param nroVoucher the nroVoucher to set
     */
    public void setNroVoucher(String nroVoucher) {
        this.nroVoucher = nroVoucher;
    }

    /**
     * @return the nroDocEx
     */
    public String getNroDocEx() {
        return nroDocEx;
    }

    /**
     * @param nroDocEx the nroDocEx to set
     */
    public void setNroDocEx(String nroDocEx) {
        this.nroDocEx = nroDocEx;
    }

    /**
     * @return the cuentaEgreso
     */
    public String getCuentaEgreso() {
        return cuentaEgreso;
    }

    /**
     * @param cuentaEgreso the cuentaEgreso to set
     */
    public void setCuentaEgreso(String cuentaEgreso) {
        this.cuentaEgreso = cuentaEgreso;
    }

    /**
     * @return the fecIniG
     */
    public Date getFecIniG() {
        return fecIniG;
    }

    /**
     * @param fecIniG the fecIniG to set
     */
    public void setFecIniG(Date fecIniG) {
        this.fecIniG = fecIniG;
    }

    /**
     * @return the fecFinG
     */
    public Date getFecFinG() {
        return fecFinG;
    }

    /**
     * @param fecFinG the fecFinG to set
     */
    public void setFecFinG(Date fecFinG) {
        this.fecFinG = fecFinG;
    }

    /**
     * @return the fecIniR
     */
    public Date getFecIniR() {
        return fecIniR;
    }

    /**
     * @param fecIniR the fecIniR to set
     */
    public void setFecIniR(Date fecIniR) {
        this.fecIniR = fecIniR;
    }

    /**
     * @return the fecFinR
     */
    public Date getFecFinR() {
        return fecFinR;
    }

    /**
     * @param fecFinR the fecFinR to set
     */
    public void setFecFinR(Date fecFinR) {
        this.fecFinR = fecFinR;
    }

    /**
     * @return the tipoPersona
     */
    public int getTipoPersona() {
        return tipoPersona;
    }

    /**
     * @param tipoPersona the tipoPersona to set
     */
    public void setTipoPersona(int tipoPersona) {
        this.tipoPersona = tipoPersona;
    }

    /**
     * @return the razBanco
     */
    public String getRazBanco() {
        return razBanco;
    }

    /**
     * @param razBanco the razBanco to set
     */
    public void setRazBanco(String razBanco) {
        this.razBanco = razBanco;
    }

    /**
     * @return the rucBanco
     */
    public String getRucBanco() {
        return rucBanco;
    }

    /**
     * @param rucBanco the rucBanco to set
     */
    public void setRucBanco(String rucBanco) {
        this.rucBanco = rucBanco;
    }

    /**
     * @return the cuentaBanco
     */
    public String getCuentaBanco() {
        return cuentaBanco;
    }

    /**
     * @param cuentaBanco the cuentaBanco to set
     */
    public void setCuentaBanco(String cuentaBanco) {
        this.cuentaBanco = cuentaBanco;
    }
}
